//
//  PublicMethod.h
//  WorkManager
//
//  Created by ukongm on 17/1/6.
//  Copyright © 2017年 ukongm. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

/**
 判断一个字符串是否是不合法的

 @param param 字符串

 @return null
 */
#define IS_NULL(param) \
if ([param isKindOfClass:[NSNull class]] || param == nil || param.length == 0) {\
    param = @"";\
}

@interface PublicMethod : NSObject

/**
 功能和NSLog 一样， 后期好屏蔽掉打印

 @param placeStr 占位符字符串
 @param ...      参数
 */
void XFLog(NSString* placeStr, ...);

/**
 把数值型Integer转换为字符串

 @param param Integer数值

 @return 对应的字符串
 */
NSString* XFIntegerToString(NSInteger param);

#pragma mark - 时间相关

/**
 把时间戳转换为字符串时间 (默认@"yyyy-MM-dd")

 @param time 时间戳

 @return 字符串
 */
NSString* XFTimestampToString(NSInteger time);

/**
 把时间戳转换为字符串时间

 @param time      时间戳
 @param formatter 时间格式字符串

 @return 时间字符串
 */
NSString* XFTimestampFormatterToString(NSInteger time,NSString* formatter);

/**
 根据时间和时间格式字符串，转换成时间字符串

 @param date      时间对象
 @param formatter 时间格式字符串

 @return 时间字符串
 */
NSString* XFStringForDate(NSDate* date,NSString* formatter);
/**
 把时间字符串按照设置的格式转换成时间对象

 @param timeStr   时间字符串
 @param formatter 时间格式字符串

 @return 时间对象
 */
NSDate* XFDateForString(NSString* timeStr,NSString* formatter);

#pragma mark 计算文字

/**
 根据字符串,文字大小和条件尺寸计算 文字所占Size

 @param value         字符串
 @param conditionSize 条件尺寸
 @param font          文字大小

 @return 文字所占size
 */
CGSize XFMathSizeForString(NSString* value,CGSize conditionSize,UIFont* font);

#pragma mark sub - 花式计算

/**
 根据圆的一些信息，计算圆上点的位置

 @param center 圆的中心点
 @param radius 圆的半径
 @param angle  角度(对于x正轴，顺时针的角度)

 @return 对应圆上的点
 */
CGPoint XFMathPointForCircleCenter(CGPoint center,CGFloat radius,CGFloat angle);

#pragma mark 富文本

/**
 往一段文字中插入图片

 @param value     文字
 @param index     插入的位置
 @param imageName 图片名称
 @param bounds    图片的位置调整
 
 @return 富文本对象
 */
NSAttributedString* XFAttributedStringForString(NSString* value,NSInteger index,NSString* imageName,CGRect bounds);


#pragma mark - 文件相关

/**
 对图片进行压缩(该过程不可逆)

 @param image 图片
 @param limit 限定的大小（单位M）

 @return 压缩过的数据
 */
NSData* XFLimitLenthForImage(UIImage* image,CGFloat limit);

@end
